Historic advances in computer technology have made it economical for individual users to have their own computing system, which caused the proliferation of the Personal Computer (PC). Continued advances have made these personal computers powerful but difficult to manage. For this and other reasons there is a desire in many workplace environments to separate the peripheral devices associated with the user interface, including keyboard, mouse, audio, display and other peripheral devices from the storage and application processing parts of the computing system. In this configuration, the user interface devices are physically located at the desktop, while the processing and storage components are incorporated in a host computer system placed in a central location. The peripheral devices are then connected to the host computer system by some method of communication. Additional economies of scale may be gained by enabling a host computer system to simultaneously host multiple isolated remote user environments or “virtual machines”, each with its own application software, operating system, memory resources and network connection using software virtualization technologies such as XEN, VMWARE™ or others.
Virtualized host computer systems that enable remote access comprise software drivers such as VNC, CITRIX ICA®, or Remote Desktop Protocol (RDP) drivers within each virtual machine used to bridge user interface signals to a remotely located client computer. A challenge with these highly abstracted bridges arises in their inability to support a diversity of peripheral devices connected to a client computer because the abstraction prevents the tight coupling between the device and a device driver required for many types of devices. Furthermore, remotely located device drivers increase the maintenance burden and introduce interoperability risks caused by mismatching driver versions and peripheral devices. A second approach used for remote access locates the device drivers and application software in one computer while the bus drivers and peripheral devices are associated with another computer elsewhere on a network. USB-over-IP methods such as AnywhereUSB bridge the connection between the bus controller driver and device driver layers of the two computers.
In a related field, virtualized servers connect to virtualization storage networks and databases using Host Bus Adapters (HBAs) provided by vendors such as EMULEX Ltd. An HBA manages storage system transactions and supports flow control of workloads flowing through the shared physical adapter for predictable response times and QoS but is not suited to peripheral device communications.
In view of the poor compatibility of these connection systems and techniques, there is a need in the art for a system and methods for providing connections between a virtualized host computer and remote peripheral devices.